/******************************************************************************
 * * setting_time.h - data structure for setting time sub-module
 *
 * *(C) Copyright 2019 Asr International Ltd.
 * * All Rights Reserved
 * ******************************************************************************/
#ifndef SETTING_TIME_H
#define SETTING_TIME_H

#ifdef __cplusplus
extern "C" {
#endif

typedef enum
{
    SETTING_TIME_HIDE = 0,                                                      // hide time on desktop
    SETTING_TIME_SHOW,                                                          // show time on desktop
} SETTING_TIME_DISPLAY;

typedef enum
{
    SETTING_TIME_FORMAT_12H = 0,                                                // 12 hours format
    SETTING_TIME_FORMAT_24H,                                                    // 24 hours format
} SETTING_TIME_FORMAT;

typedef enum
{
    SETTING_TIME_AUTO_UPDATE_OFF = 0,                                           // standby screen off
    SETTING_TIME_AUTO_UPDATE_ON,                                                // standby screen on
} SETTING_TIME_AUTO_UPDATE;

typedef struct
{
    SETTING_TIME_FORMAT      TimeFormat;                                        // format of time display
    SETTING_TIME_DISPLAY     TimeDisplay;                                       // show time on desktop or not
    SETTING_TIME_AUTO_UPDATE TimeAutoUpdate;                                    // automatic update time on/off
} Setting_Time_Setting_Mng_t;

#define  SETTING_TIME_MIN_YEAR         1970
#define  SETTING_TIME_MAX_YEAR         2050
#define  SETTING_TIME_YEAR_LOOP_CNT    (SETTING_TIME_MAX_YEAR - SETTING_TIME_MIN_YEAR + 1)

extern Setting_Time_Setting_Mng_t g_SettingTimeSettingMng;                      // for time setting manage

extern VOID Setting_Time_Init_Req(NV_UI_Settings_t *pNvPara);
extern VOID Display_Setting_Time_Scroll(ACTIVITY_ID CallerActId);
extern VOID Setting_Get_Rtc_Time(hal_rtc_t *Time);
extern VOID Setting_Set_Rtc_Time(hal_rtc_t *Time);
extern INT8 *UI_Lang_Get_Text_ById(UINT16 TxtId);

#ifdef __cplusplus
} /* extern "C" */
#endif

#endif /*SETTING_TIME_H*/
